1. Field of the Invention
Embodiments of the present invention generally relate to data storage and, more particularly to a method, system, and computer readable medium for asynchronously processing write operations for a data storage volume that utilizes copy-on-write (COW) snapshots.
2. Description of the Related Art
In information sharing and processing environments, many businesses employ data processing systems for storing and processing data. Often, the viability of a business depends on the reliability of access to data contained within its data processing system. As such, businesses seek reliable and efficient ways to consistently protect their data processing systems and the data contained therein from natural disasters, acts of terrorism, and unauthorized access, or computer hardware and/or software failures. Data backup systems have been used for the protection of data by minimizing or eliminating loss of data, thereby forming an important aspect of business strategy and a key element in information sharing and processing environments.
Data backup technologies, such as, snapshot and mirroring, have been used to improve performance of the data backup systems in terms of backup as well as recovery, i.e., such data backup technologies not only minimize or eliminate loss of data, but also enable rapid recovery of a data processing system when compared to conventional bulk transfer methods from sequential media, for example, tape drives, and the like.
A snapshot is a virtual point-in-time (PIT) backup copy of a data storage volume. A snapshot creates an instant backup that provides a PIT copy of the volume. By repeating the snapshot creation process, a sequence of snapshots is created containing a historical record of volume content. This sequence of snapshots provides the ability to access data instantly, at any point within the historical record; unlike tape-based backups. Snapshots may be used to support various functions including remote replication, business continuance, and rapid application development and support for regulatory requirements.
Snapshots may be independent or dependent. Independent snapshots contain a complete copy of the volume from which they are created, while dependent snapshots generally contain changes (modified blocks) to the data on the volume that have occurred since a prior snapshot, either dependent or independent, was created.
To improve data access to the volume, requests may be handled partially or completely by the snapshots. However, when performing a read operation on a dependent snapshot, unmodified blocks are read from the volume and modified blocks are read from one or more snapshots. One form of dependent snapshot is known as a copy-on-write snapshot. With a copy-on-write snapshot, each time a write operation is performed in the volume, the contents of the original file, as of the time the snapshot was made prior to the current write operation, are preserved in a snapshot volume. In other words, all the blocks that are modified in the file are copied to the snapshot volume when writing to the file in the volume. Since copy-on-write snapshots read the data from the volume, there is a performance degradation while the data is being copied to the snapshot.
In such cases, when a write operation is initiated by an application and received at the volume, the old data is copied to a snapshot volume before the new data is written to the volume. This process causes a delay in completing the write operation on the volume. Since copy-on-write occurs synchronously with the write operation, the write operation initiated by an application itself suffers degradation. Furthermore, when a volume has dependent snapshots, the write operation on the volume is completed only after all the dependent snapshots have been updated, thereby increasing the write latency of such volumes.
Attempts have been made to reduce write latency on volumes using copy-on-write snapshots, including the use of a Distributed Front End Log (DFEL). However, DFEL requires a special type of log whose redundancy level has to be the same as the volume. All read/write activity must flow through the log, thereby making the log itself a bottleneck for volume and snapshot update activity.
Therefore, there is a need in the art for a method and apparatus to reduce write latency of volumes having copy-on-write snapshot(s).